ios如何获取数据之encodeURI和decodeURI

您所在的位置:网站首页 encodeuri decodeuri ios如何获取数据之encodeURI和decodeURI

ios如何获取数据之encodeURI和decodeURI

2023-03-15 14:43| 来源: 网络整理| 查看: 265

在APP开发过程中,免不了要进行ios的数据处理,在ios传递数据的过程中,会出现JSON数据获取不到的情况,这时候就轮到encodeURI 和 decodeURI出马了。

1、encodeURI,decodeURI

encodeURI:将字符串作为 URI 进行编码

•不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码( 即:- _ . ! ~ * ' ( ) )。

•目的是对 URI 全部的编码,因此对在 URI 中具有特殊含义的 ASCII 标点符号(即:;/?:@&=+$,#)是不会进行编码的。所以,此函数别名为 encodeURL 不为过,相当于 PHP 的 url_encode 。

例子:

encodeURI("http://ydr.me?user=hello云淡然");//"http://ydr.me?user=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6"decodeURI("http://ydr.me?user=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6");//http://ydr.me?user=hello云淡然

由于 encodeURI 是对 URL 的完整编码,所以常用于URL的跳转之处:

location.href=encodeURI('http://baidu.com/s?word=hello云淡然');//"http://baidu.com/s?word=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6"

在各个浏览器打开该地址,表现均不相同:

•ie的url表现的最规范(完全按照encodeURI编码)

•chrome的url表现比较规范(部分按照encodeURI编码)

•firefox的url表现最不规范(完全没有安装encodeURI编码)

虽然各个浏览器的URL表现均不相同,但在 firefox 和 chrome 中url的可读性最高,ie最低。

2、encodeURIComponent 和 decodeURIComponent

encodeURI 是对完整的URL进行编码,而 encodeURIComponent 是对URL的参数进行编码的,并且其编码特点如下:

•不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码(即: - _ . ! ~ * ' ( ) )。

•目的是对 URI 部分的编码,因此对在 URI 中具有特殊含义的 ASCII 标点符号(即:;/?:@&=+$,#)是会进行编码的。

encodeURIComponent("http://ydr.me?user=helloworld");//"http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world"decodeURIComponent("http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world");//http://ydr.me?user=helloworld

由于 encodeURIComponent 是对URL部分编码,因此常用于queryString、hashSearch、hashPath以及Cookie中,如:

//queryString编码"http://ydr.me?from="+encodeURIComponent("http://baidu.com");//"http://ydr.me?from=http%3A%2F%2Fbaidu.com"//hashSearch、hashPath编码"http://ydr.me#?from="+encodeURIComponent("http://baidu.com");//"http://ydr.me#?from=http%3A%2F%2Fbaidu.com""http://ydr.me#!from/"+encodeURIComponent("http://baidu.com");//"http://ydr.me#!from/http%3A%2F%2Fbaidu.com"//cookie编码document.cookie="from="+encodeURIComponent("http://baidu.com");//"from=http%3A%2F%2Fbaidu.com"

3、escape 和 unescape

escape 与 encodeURI 和 encodeURIComponent 类似,都是对字符串进行编码。不同点在于该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号(即: * @ - _ + . / )进行编码,其他所有的字符都会被转义序列替换。

注意:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3